[root@ns1 ~]# nmcli d
DEVICE TYPE STATE CONNECTION
eno16777736 ethernet connected eno16777736
lo loopback unmanaged --
IP、网关、dns等设置
# set IPv4 address ⇒ nmcli *** [IP address]
[root@ns1 ~]# nmcli c modify eno16777736 ipv4.addresses 10.0.0.5/24 // eno16777736 是指CONNECTION或NAME名,以下类同
# set default gateway
[root@ns1 ~]# nmcli c modify eno16777736 ipv4.gateway 10.0.0.1
# set DNS
[root@ns1 ~]# nmcli c modify eno16777736 ipv4.dns 10.0.0.1
#set DNS2
[root@ns1 ~]# nmcli c modify eno16777736 +ipv4.dns 10.0.0.2
# set manual for static setting (it's "auto" for DHCP)
[root@ns1 ~]# nmcli c modify eno16777736 ipv4.method manual
# restart the interface and reload the settings
[root@ns1 ~]# nmcli c down eno16777736; nmcli c up eno16777736
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1)
# show settings
[root@web ~]# nmcli c
NAME UUID TYPE DEVICE
Wired connection 1 96f3dea9-8913-3e6c-a0a3-734c4990e4c9 802-3-ethernet ens38
ens33 6d471652-e72c-45a4-8a8e-523ae3ab5968 802-3-ethernet ens33
ens37 1d0ecef1-2d45-4e41-bcf5-864b4ea4032d 802-3-ethernet ens37
[root@web ~]# nmcli d
DEVICE TYPE STATE CONNECTION
ens33 ethernet connected ens33
ens37 ethernet connected ens37
ens38 ethernet connected Wired connection 1
lo loopback unmanaged --
1、先罗列几个nmcli日常用法
nmcli dev status //查看系统现有网络设备的连接状态
nmcli conn show //查看已有连接
nmcli conn delete UUID1 UUID2 UUID3 //删除不需要的连接
nmcli conn delete 'Wired connection 1' //删除不需要的连接;Wired connection 1是指网络名(NAME或CONNECTION);在putty端上'Wired connection 1'是单引号;在本机终端上”Wired connection 1”是双引号
nmcli dev connect ens38 //连接设备ens38,该操作类似于接上网卡网线;ens38是指设备名(DEVICE)
// 如果网络名是Wired connection 1时,可以通过 nmcli conn delete 'Wired connection 1',再通过 nmcli dev connect ens38,可得到ens38网络名
nmcli dev disconnect ens38 //断开设备ens38,类似于拔掉网线;ens38是指设备名(DEVICE)
nmcli c down 'Wired connection 1' //关闭连接Wired connection 1,等同于ifdown 'Wired connection 1';Wired connection 1是指网络名(NAME或CONNECTION)
nmcli conn up 'Wired connection 1' //打开连接Wired connection 1,等同于ifup 'Wired connection 1';Wired connection 1是指网络名(NAME或CONNECTION)
nmcli dev show //查看设备详细信息
nmcli con reload //重新加载配置文件
2、创建、命名连接,并做基本配置
nmcli conn add type ethernet con-name ens160 ifname ens160 //创建新连接con-name是ens160,也可以根据个人习惯改为eth0.连接到的设备是ens160,根据实际情况改成自己使用的网卡
nmcli conn mod ens160 ipv4.addresses "10.x.x.x/24" //配置IP和掩码
nmcli conn mod ens160 ipv4.gateway "10.x.x.254" //配置网关
nmcli conn mod ens160 ipv4.dns "x.x.x.x" //配置dns
nmcli conn mod ens160 ipv4.method manual //配置IP地址获取方式为手动
nmcli conn mod ens160 connection.autoconnect yes //配置开机自动启动
nmcli conn up ens160 //启动网卡,命令等同于ifup ens160
3、配置网卡bond
网卡bond是创建一个虚拟链接做为主,若干个连接做为从。从连接关联各自的物理网卡,避免物理网卡的单点故障,提高可用性。
//这里系统有两个网卡enp9s0f0和enp9s0f1
nmcli conn add type bond con-name bond0 ifname bond0 mode active-backup autoconnect yes
//添加一个连接,类型为bond,连接名bond0,设置连接自动启动.设备指向bond0,将创建出一个虚拟设备bond0
nmcli conn add type bond-slave con-name eth0 ifname enp9s0f0 master bond0 autoconnect yes
nmcli conn add type bond-slave con-name eth1 ifname enp9s0f1 master bond0 autoconnect yes
//为bond0添加两个从连接eth0和eth1,分别关联物理网卡enp9s0f1和enp9s0f1,设置连接自动启动.也可以不指定从连接名,会自动命名bond-slave-enp9s0f0和bond-slave-enp9s0f1
nmcli conn modify bond0 ipv4.addresses "10.x.x.x/24"
nmcli conn modify bond0 ipv4.gateway "10.x.x.254"
nmcli conn modify bond0 ipv4.dns "x.x.x.x"
nmcli conn modify bond0 ipv4.method manual
//为连接bond0配置IP、网关、dns、启动方式
nmcli connection up eth0
nmcli connection up eth1
nmcli connection up bond0 //启动两个从连接,然后启动主连接。启动eth0和eth1时会自动disconnect网卡上原有的连接,建议在终端上操作。
地址配置工具: nmcli
推荐在CentOS7上使用,6上不建议
注意:NeworkManager是管理和监控网络设置的守护进程,运行此命令需要NetworkManager服务开启
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
device – show and manage network interfaces
nmcli device help
connection – start, stop, and manage network connections
nmcli connection help
修改IP地址等属性:
#nmcli connection modify IFACE [+|-]setting.property value
setting.property:
ipv4.addresses ipv4.gateway ipv4.dns1 ipv4.method manual | auto
修改配置文件执行生效:
systemctl restart network重启服务
或
nmcli con reload重新加载配置文件
nmcli命令生效: nmcli con down eth0 ;nmcli con up eth0
示例:
connection可以简写 con 或 c
注意:图中的名称对应于/etc/sysconfig/network-scripts/ifcfg-###网卡文件中的“NAME=”这一项,修改此项就可以修改名称
设备即网络接口,连接是对网络接口的配置。一个网络接口
可有多个连接配置,但同时只有一个连接配置生效。
显示所有包括不活动连接
[root@localhost ~]# nmcli connection show
名称 UUID 类型 设备 eth0 ab4ee136-d703-4d37-9339-085beec3e181 802-3-ethernet eth0 eth1 50f31347-a405-47c5-b4d3-c52e79ecdcf1 802-3-ethernet -- eth0 e44ae173-22c3-479b-a2be-16df771e9ce7 802-3-ethernet -- eth1 df090843-cd20-470b-8126-dbbc9a89fe16 802-3-ethernet eth1 virbr0 8a92c72b-3520-4a69-bc3d-2b467a17558e bridge virbr0
显示所有活动连接
[root@localhost ~]# nmcli connection show --active
名称 UUID 类型 设备 eth0 ab4ee136-d703-4d37-9339-085beec3e181 802-3-ethernet eth0 eth1 df090843-cd20-470b-8126-dbbc9a89fe16 802-3-ethernet eth1 virbr0 8a92c72b-3520-4a69-bc3d-2b467a17558e bridge virbr0
显示网络连接配置
nmcli connection show "网卡名称" 显示当前对应网卡的详细信息
[root@localhost ~]# nmcli connection show "eth1" connection.id: eth1 connection.uuid:50f31347-a405-47c5-b4d3-c52e79ecdcf1 connection.interface-name: eth1 connection.type:802-3-ethernet ... GENERAL.MASTER-PATH:-- IP4.地址[1]:10.1.253.94/16 IP4.地址[2]:10.1.249.44/16 IP4.网关: 10.1.0.1 IP4.路由器[1]: dst = 169.254.0.0/16, nh = 0.0.0.0, mt = 1003 IP4.DNS[1]: 10.1.0.1 IP4.域[1]: magedu.com DHCP4.选项[1]: requested_ms_classless_static_routes = 1 ... DHCP4.选项[30]: dhcp_server_identifier = 10.1.0.1 IP6.地址[1]:fe80::20c:29ff:fe43:6497/64 IP6.网关:
显示设备状态
nmcli dev status
[root@localhost ~]# nmcli dev status 设备类型 状态CONNECTION virbr0 bridge连接的 virbr0 eth0ethernet 连接的 eth0 eth1ethernet 连接的 eth1 lo loopback 未管理 -- virbr0-nic tap 未管理 --
显示网络接口属性
nmcli dev show eth1
[root@localhost ~]# nmcli dev show eth1 GENERAL.设备: eth1 GENERAL.类型: ethernet GENERAL.硬盘: 00:0C:29:43:64:97 GENERAL.MTU:1500 GENERAL.状态: 100 (连接的) GENERAL.CONNECTION: eth1 GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2 WIRED-PROPERTIES.容器: 开 IP4.地址[1]:10.1.253.94/16 IP4.地址[2]:10.1.249.44/16 IP4.网关: 10.1.0.1 IP4.路由器[1]: dst = 169.254.0.0/16, nh = 0.0.0.0, mt = 1003 IP4.DNS[1]: 10.1.0.1 IP4.域[1]: magedu.com IP6.地址[1]:fe80::20c:29ff:fe43:6497/64 IP6.网关:
创建新连接default, IP自动通过dhcp获取
nmcli con add con-name default type Ethernet ifname eth0
示例:
[root@localhost ~]# nmcli connection add con-name home type ethernet ifname eth1 autoconnect no [root@localhost ~]# nmcli connection add con-name office type ethernet ifname eth1 autoconnect no
创建新连接static ,指定静态IP,不自动连接
nmcti con add con-name static ifname eth0 autoconnect no type Ethernet ip4 172.25.X.10/24 gw4 172.25.X.254
示例:
[root@localhost ~]# nmcli connection add con-name home type ethernet ifname eth1 autoconnect yes ip4 10.1.100.100/24 gw4 10.1.0.254 [root@localhost ~]# nmcli connection add con-name office type ethernet ifname eth1 autoconnect yes ip4 10.1.100.200/24 gw4 10.1.0.254
注意:以上命令执行过程中会自动生成/etc/sysconfig/network-scripts/ifcfg-,并且相关内容已经添加进文件内部,无论其dhcp还是固定的
但是要想启用或切换对应配置需要运行如下命令:
nmcli connection up home
[root@localhost ~]# nmcli connection up home
#或切换office配置 [root@localhost ~]# nmcli connection up office
删除对应网卡配置连接
nmcli con del default
示例:
[root@localhost ~]# nmcli connection delete home
注意:此删除操作会删除对应网卡的配置文件
查看帮助
nmcli con add help
修改连接设置
nmcli con mod “static” connection.autoconnect no
nmcli con mod “static” ipv4.dns 172.25.X.254
nmcli con mod “static” +ipv4.dns 8.8.8.8
nmcli con mod “static” -ipv4.dns 8.8.8.8
nmcli con mod “static” ipv4.addresses “172.25.X.10/24 172.25.X.254”
nmcli con mod “static” +ipv4.addresses 10.10.10.10/16
修改连接配置后,需要重新加载配置
nmcli con reload
nmcli con down “system eth0” 可被自动激活
nmcli con up “system eth0”
nmcli dev dis eth0 禁用网卡,访止被自动激活
图形工具
nm-connection-editor
网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量
网络组不同于旧版中bonding技术,提供更好的性能和扩展性
网络组由内核驱动和teamd守护进程实现.
多种方式runner
broadcast(广播)
roundrobin(轮流)
activebackup(活动备份)
loadbalance(负载均衡)
lacp (implements the 802.3ad Link Aggregation Control Protocol)链路聚合控制协议:需要汇聚层交换机支持
网络组
启动网络组接口不会自动启动网络组中的port接口
启动网络组接口中的port接口不会自动启动网络组接口
禁用网络组接口会自动禁用网络组中的port接口
没有port接口的网络组接口可以启动静态IP连接
启用DHCP连接时,没有port接口的网络组会等待port接口的加入
创建网络组接口
nmcli con add type team con-name CNAME ifname INAME [config JSON]
CNAME 连接名, INAME 接口名
JSON 指定runner方式
格式: '{"runner": {"name": "METHOD"}}'
METHOD 可以是broadcast, roundrobin,
activebackup, loadbalance, lacp
示例:
[root@localhost ~]# nmcli connection add con-name team0 type team ifname team0 config '{"runner"{"name":"activebackup"}}'
创建port接口
nmcli con add type team-slave con-name CNAME
ifname INAME master TEAM
CNAME 连接名
INAME 网络接口名
TEAM 网络组接口名
连接名若不指定,默认为team-slave-IFACE
示例:
[root@localhost ~]# nmcli connection add con-name team0 -eth1 type team-slave ifname eth1 master team0
[root@localhost ~]# nmcli connection add con-name team0 -eth2 type team-slave ifname eth2 master team0
然后配置team0网络组的ip地址
设置IP
# nmcli con mod team0 ipv4.addresses 192.168.1.100/24
设置固定IP模式
# nmcli con mod team0 ipv4.method manua
INAME 设备名 CNAME 网络组接口名或port接口
对应生成以下文件
管理网络组配置文件
# /etc/sysconfig/network-scripts/ifcfg-team0
DEVICE=team0
DEVICETYPE=Team
TEAM_CONFIG="{\"runner\": {\"name\": \"broadcast\"}}"
BOOTPROTO=none
IPADDR0=172.25.5.100
PREFIX0=24
NAME=team0
网络组成员文件(一个或多个)
# /etc/sysconfig/network-scripts/ifcfg-team0-eth1
DEVICE=eth1
DEVICETYPE=TeamPort
TEAM_MASTER=team0
NAME=team0-eth1
ONBOOT=yes
ONBOOT=yes
启用网络组
# nmcli con up team0
# nmcli con up team0-eth1
# nmcli con up team0-eth2
查看网络组状态
#teamdctl team0 state